/**
 * @description:数组对象模糊查询元素指定键
 * @param {key}:模糊搜索的数组key
 * @param {value}:模糊搜索的关键词
 * @param {arr}:模糊搜索的数组
 * @return {*}:模糊搜索到的值，以数数组形式返回
 * @author: 琴时
 */
export const listSearch = (key, value, arr) => {
  return arr.filter(item => item[key].match(RegExp(value)))
}

/*******
 * @description:数组对象模糊查询所有元素
 * @author: 琴时
 * @param {value} [模糊搜索的关键词]
 * @param {arr} [模糊搜索的数组]
 * @return {*}
 */
export const listSearchAll = (value, arr) => {
  const tempList = []
  arr.forEach(item => {
    for (let key in item) {
      if (item[key].toString().match(RegExp(value))) {
        tempList.push(item)
        break
      }
    }
  })
  return tempList
}
/**
 * 测试用例
 * 将src/index.js底部执行函数:selectTest(params)的实参params改为 5
 * 直接无法测试，请使用npm run dev或者去掉 export 使用node运行当前界面测试即可
 */
const array = [
  { id: 1, name: '张三', age: 18 },
  { id: 2, name: '李四', age: 19 },
  { id: 3, name: '玄五', age: 20 },
  { id: 4, name: '贼六', age: 21 },
  { id: 5, name: '张三丰', age: 22 },
  { id: 6, name: '张三风', age: 23 },
  { id: 7, name: '张三疯', age: 24 },
]
console.log('测试数组对象模糊查询指定键:', listSearch('name', '张', array))
console.log('测试数组对象模糊查询所有键:', listSearchAll('2', array))
